<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>字符串对象</title>
    <script>
        // 1.查找字符串中，其中一个字符出现的次数以及位置
        var arr = [1, 3, 5, 7, 9, 9, 7, 5, 3, 1]; //统计3出现的次数以及位置
        var count = 0;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] == 3) {
                count++;
            }
        }
        var index = arr.indexOf(3);
        while (index != -1) {
            console.log('3出现的位置是' + index);
            index = arr.indexOf(3, index + 1);
        }
        console.log('3出现的次数是' + count);
        // console.log('3出现的位置是' + arr.indexOf(3));

        // 2.根据位置返回字符
        var str = 'redredredred';
        console.log(str.charAt(3));
        console.log(str.charCodeAt(2)); //返回该位置的字符的ASCII值
        console.log(str[3]); //H5新增的

        // 3.统计出现次数最多的字符串
        var str = 'aaaabbbccd';
        // 核心算法: 利用charAt() 遍历字符串,如果对象没有改属性就为1 如果存在了就+1
        var o = {};
        for (var i = 0; i < str.length; i++) {
            var chars = str.charAt(i); //chars是字符串的每一个字符
            if (o[chars]) {
                o[chars]++;
            } else {
                o[chars] = 1;
            }
        }
        console.log(o);
        var max = 0;
        var ch = '';
        for (var k in o) {
            //k得到的是属性名   o[k]得到的是属性值
            if (o[k] > max) {
                max = o[k];
                ch = k;
            }
        }
        console.log(max);
        console.log('最多字符出现的是' + ch);

        // 4.concat()方法
        var str = 'aaaabbbccd';
        var str1 = 'blue';
        console.log(str.concat('red'));
        console.log(str.concat(str1));

        // 5.substr(start,length)方法
        var str = 'aaaabbbccd';
        console.log(str.substr(4, 3)); //从索引4 开始取3个字符

        // 6.替换字符串replace()
        var str = 'aaaabbbccd';
        console.log(str.replace('a', 'p'));
        while (str.indexOf('a') != -1) {
            str = str.replace('a', 'h');
        }
        console.log(str);

        // 7.字符串转换为数组  split('分隔符')  join('分隔符')
        var str3 = 'aaaabbbccd';
        var str4 = 'red,pink,blue,purple';
        var str5 = 'red&pink&blue&purple';
        console.log(str3.split(''));
        console.log(str4.split(','));
        console.log(str5.split('&'));

        // 8.大小写转换 toUpperCase()转为大写   toLowerCase()转为小写
        var str3 = 'aaaabbbccd';
        var str4 = 'BXWCNWUECBWEU';
        var str5 = 'bwbucbwuCBUWEBC'
        console.log(str3.toUpperCase());
        console.log(str5.toLowerCase());
        console.log(str4.toLowerCase());
        console.log(str5.toUpperCase());

        // 9.案例
        var str = 'abaasdffggghhjjkgfddsssss3444343';
        // 求字符串长度
        console.log(str.length);
        // 取出指定位置的字符
        console.log(str.charAt(0));
        console.log(str.charAt(6));
        // 查找字符在以上字符串中是否存在
        console.log(str.indexOf(i)); //i不存在字符串中返回的值是-1
        // 替换指定的字符串
        var str1 = '';
        while (str.indexOf('s') != -1) {
            str = str.replace('s', 'M');
        }
        console.log(str);
        // 截取指定开始位置到结束位置的字符串
        console.log(str.slice(2, 6));
        // 找出以上字符串里出现最多的字符和出现的次数
        var o = {};
        for (var i = 0; i < str.length; i++) {
            var chars = str.charAt(i);
            if (o[chars]) {
                o[chars]++;
            } else {
                o[chars] = 1;
            }
        }
        console.log(o);
        var max = 0;
        var ch;
        for (var k in o) {
            if (o[k] > max) {
                max = o[k];
                ch = k;
            }

        }
        console.log('出现次数最多的是' + ch + '出现了' + max + '次');
    </script>
</head>

<body>

</body>

</html>